[アップデート] AWS App RunnerがマネージドランタイムとしてGoをサポートしたので実行してみた
こんにちは。サービス部の武田です。
AWS App Runnerのマネージドランタイムに、新しくPHP 8.1、Go 1.18、.Net 6、Ruby 3.1が追加されました。マネージドランタイムとしてサポートされる環境は、自前でのビルドなどをせずにアプリケーションをデプロイできるためとても便利です。
また.Net 6についてはいわさがエントリを書いています。
久しぶりにGo触ってみたくなっただけですが、今回はGoアプリケーションをデプロイしてみました。
やってみた
今回デプロイしたソースコードはGitHubにホストしてあります。
ローカルの環境作りと準備
久しぶりのGoだったのでローカルの環境作りから。Macを使っているのでHomebrewでGoはインストールできます。またWebフレームワークとしてGinを使いました。
$ brew install go $ cd working_dir $ mkdir example-aws-app-runner-go1 && cd $_ $ git init $ go mod init example-aws-app-runner-go1 $ go get github.com/gin-gonic/gin@v1.8.1
今回確認用に用意したソースコードは次のものです。
アクセスされたら Hello, AWS App Runner! と返すだけのシンプルなアプリケーションです。
次のコマンドで確認できます。
$ go run .
確認できたら準備完了です。コミットしてプッシュしておきましょう。
$ git add . && git commit -m 'commit' && git push origin main
App Runnerで動かす
それでは先ほど作成したアプリケーションをApp Runnerで動かしていきます。
リポジトリタイプは「ソースコードリポジトリ」を選択し、ホストしているリポジトリと連携できるようにします。
ランタイムにGo 1
が見つかります。
「構築コマンド」にはgo install
を指定し、開始コマンドにgo run main.go
と指定します。最初開始コマンドにgo run .
と指定してみたのですが、これでは動作しませんでした。またポート番号は8080
です。
Ginはデフォルトではデバッグモードで動作するため、環境変数でGIN_MODE=release
と指定しました。
これで設定は完了です。しばらく待って問題なければアプリケーションがデプロイされます。発行されたURLにアクセスすると、無事に画面が表示されました。
まとめ
App Runnerのマネージドランタイムとしてサポートされた言語は自前のビルドなどなしに簡単にデプロイできます。今回新しく4言語が追加されたことで、また利用の幅が広がるのではないでしょうか。Fargateなどで運用している既存のシステムがあるなら、移行の検討もしてみてください。